package org.mokusakura.service;

import org.mokusakura.domain.Order;
import org.mokusakura.domain.User;

import java.util.List;
import java.util.Map;

/**
 * @author MokuSakura
 */
public interface OrderService {
    /**
     * <p>根据用户搜索相应的order id，这是为了加速order list页面，否则order list页面太慢了，无法接受</p>
     *
     * @param user 需查询的用户
     * @return 返回order id的数组，如果没有order则为空数组
     */
    @Deprecated
    List<Map<String, String>> getOrderForOrderListPageByUser(User user);

    /**
     * <p>根据orderId搜索相应的order</p>
     *
     * @param orderId 需查询的orderId
     * @return Order 如果该order存在，没有则为null，Order中所有字段，包括LineItem里面的item都是齐全的
     */
    Order getOrderByOrderId(Long orderId);

    /**
     * <p>根据user获得其所有的order，返回值order.lintItems为null</p>
     *
     * @param user - 待查询的user
     * @return - order list，其中order.lintItems为null
     */
    List<Order> getOrderListByUser(User user);

    /**
     * <p>根据Id更新order状态</p>
     *
     * @param order - 订单
     * @return - 1或0
     */
    Integer updateOrder(Order order);
}
